package itheima03;

import java.util.function.Predicate;

/*
    常用的函数式接口
        java.util.function.Predicate<T>: 判断型接口
            抽象方法:
                public abstract boolean test(T t): 根据给定的方法参数T类型的t,返回一个boolean类型的结果
    练习:
        //1.练习:判断字符串长度是否大于5
        //2.练习:判断字符串是否包含"H"
 */
public class Demo05Predicate {
    public static void main(String[] args) {
        String str = "HelloWorld";
        //1.匿名内部类对象的方式
        method(str, new Predicate<String>() {
            @Override
            public boolean test(String s) {
                //断字符串长度是否大于5
                return s.length()>5;
            }
        });

        //2.lambda表达式的标准方式
        //断字符串长度是否大于5
        method(str,(String s)->{return s.length()>5;});

        //3.lambda表达式的简化方式
        //断字符串长度是否大于5
        method(str,s->s.length()>5);
    }
    /*
        定义方法,使用函数式接口Predicate作为参数
     */
    public static void method(String str,Predicate<String> p) {
        boolean result = p.test(str);
        System.out.println(result);
    }
}
